Experience in Testing Compiler Optimizers Using Comparison Checking

نویسندگان

  • Masataka Sassa
  • Daijiro Sudosa
چکیده

This paper describes our experience of testing and debugging an optimizer using comparison checking. Although this study is based on Jaramillo et al.’s work, the experience will help those who test optimizers using this technique. In our implementation, important values during the execution of programs are output as a file trace before and after each optimization. Then a comparison phase checks these results. When the comparison checker finds an error in the optimizer the system shows a C language style program that is back translated from the intermediate code. Therefore, the optimizer writer can easily find the erroneous section of the optimizer. We have implemented the system on a compiler infrastructure and have verified the optimizers that our group has been developing. By applying this technique, we found four bugs, including two unknown bugs, in the optimizer.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Debugging and Testing Optimizers through Comparison Checking

We present a novel technique called comparison checking that helps optimizer writers debug optimizers by testing, for given inputs, that the semantics of a program are not changed by the application of optimizations. We have successfully applied comparison checking to a large class of program transformations that alter (1) the relative ordering in which values are computed by the intermediate c...

متن کامل

Verifying Optimizers through Comparison Checking

In this paper we describe a novel technique called comparison checking that helps optimizer writers validate and debug optimizers by verifying for given inputs that the semantics of a program are not changed by the application of optimizations We outline the key steps that lead to the automation of comparison checking The application of comparison checking to verify implementations of high leve...

متن کامل

Generating Java Compiler Optimizers Using Bidirectional CTL

There have been several research works that analyze and optimize programs using temporal logic. However, no evaluation of optimization time or execution time of these implementations has been done for any real programming language. In this paper, we present a system that generates a Java optimizer from specifications in temporal logic. The specification is simpler, and the generated optimizers ...

متن کامل

Differential Testing for Variational Analyses: Experience from Developing KConfigReader

Differential testing to solve the oracle problem has been applied in many scenarios where multiple supposedly equivalent implementations exist, such as multiple implementations of a C compiler. If the multiple systems disagree on the output for a given test input, we have likely discovered a bug without every having to specify what the expected output is. Research on variational analyses (or va...

متن کامل

Validation of GCC optimizers through trace generation

The translation validation approach involves establishing semantics preservation of individual compilations. In this paper, we present a novel framework for translation validation of optimizers. We identify a comprehensive set of primitive program transformations that are commonly used in many optimizations. For each primitive, we define soundness conditions which guarantee that the transformat...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2006